package edu.thu.thss.yxy.gui.custom;
import java.awt.event.*;
import java.awt.*;

import javax.swing.*;

/**
 * 创建一个JLabel,字体颜色是蓝色的.当光标移动到它上面时,字体颜色变为红色,同时光标变为手状
 * @version 1.0
 */
public class MyLabel extends JLabel {
	private Cursor hand_cursor;
	private Cursor default_cursor;
	
	/**
	 * 创建无图像并且其标题为空字符串的 Label
	 */
	public MyLabel() {
		this("", null, LEADING);
	}//end constructor
	
	/**
	 * 创建无图像并且其标题为text的 Label
	 * @param text 文本
	 */
	public MyLabel(String text) {
        this(text, null, LEADING);
    }//end constructor
	
	/**
	 * 创建图像并且其标题为空字符串的 Label
	 * @param image 图标
	 */
	public MyLabel(Icon image) {
        this(null, image, CENTER);
    }//end constructor
	
	/**
	 * 创建具有指定图像和文本,对齐方式的 Label 实例
	 * @param text 文本
	 * @param image 图标
	 */
	public MyLabel(String text, Icon image) {
        this(text, image, SwingConstants.LEFT );
    }//end constructor
	
	
	/**
	 * 创建具有指定图像和文本的 Label 实例
	 * @param text 文本
	 * @param icon 图标
	 * @param horizontalAlignment 对齐方式
	 */
	public MyLabel( String text, Icon icon, int horizontalAlignment ) {
		super(text, icon, horizontalAlignment);
		setForeground(Color.blue);
		
		hand_cursor = new Cursor(Cursor.HAND_CURSOR);
		default_cursor = new Cursor(Cursor.DEFAULT_CURSOR);
		
		addMouseListener( 
			new MouseAdapter() {
				public void mouseEntered(MouseEvent e) {
					setForeground(Color.red);
					setCursor(hand_cursor);
				}

				public void mouseExited(MouseEvent e) {
					setForeground(Color.blue);
					setCursor(default_cursor);
				}
			}
		);
		
	}//end constructor
	
	
} //end class MyLabel
